import { AxiosRequestConfig, AxiosResponse } from 'axios'

export interface GCRequestInterceptors<T = AxiosResponse> {
  requestInterceptors?: (config: AxiosRequestConfig) => AxiosRequestConfig
  requestInterceptorsCatch?: (config: any) => any
  responseInterceptors?: (config: T) => T
  responseInterceptorsCatch?: (config: any) => any
}

export interface GCRequestConfig<T = AxiosResponse> extends AxiosRequestConfig {
  interceptors?: GCRequestInterceptors<T>
}
